﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.Data;
using produccion.reportes;
using System.Windows.Controls.Primitives;
using System.Threading;
using System.Globalization;
using System.Collections;

namespace produccion.forms
{
    /// <summary>
    /// Lógica de interacción para FrmProcesoCierreDeMes.xaml
    /// </summary>
    public partial class FrmProcesoCierreDeMes : Window
    {
        public FrmProcesoCierreDeMes()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            CboMesSeleccionado.SelectedIndex = 0;//FJRF - Ponemos en el primer mes
            CboMesSeleccionado.Focus();
        }
        private void EjecutarSp_CIERREMESP(string strMes)//FJRF - Este procedimiento ejecuta un sp
        {
            try
            {
                MDOgeneral.spComando.CommandText = "SP_CIERREMESP";
                MDOgeneral.spComando.Connection = MDOgeneral.conexion;
                MDOgeneral.spComando.CommandType = CommandType.StoredProcedure;
                MDOgeneral.spComando.Parameters.Clear();

                //Input
                MDOgeneral.spComando.Parameters.Add("pnu_mes", Oracle.DataAccess.Client.OracleDbType.Varchar2, 40).Value = strMes;

                //Output salidas
                MDOgeneral.spComando.Parameters.Add("pva_result", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.Parameters.Add("pva_errusu", Oracle.DataAccess.Client.OracleDbType.Varchar2, 2000).Direction = ParameterDirection.Output;
                MDOgeneral.spComando.ExecuteNonQuery();
            }
            catch (Exception ex) { throw ex; }
        }

        private void BtnProcesar_Click(object sender, RoutedEventArgs e)
        {
            String StrMesSeleccionadoUsuario = ((ComboBoxItem)CboMesSeleccionado.SelectedItem).Tag.ToString();//FJRF - Extraemos el mes

            EjecutarSp_CIERREMESP(StrMesSeleccionadoUsuario);//FJRF - Ejecutamos el cierre

            string StrProcesoGuardado = MDOgeneral.spComando.Parameters["pva_result"].Value.ToString();//FJRF - Extraemos el parametro retornado SP
            string StrMensaje = MDOgeneral.spComando.Parameters["pva_errusu"].Value.ToString();//FJRF - Extraemos el parametro retornado SP

            if (StrProcesoGuardado == "X")//FJRF - Si se retorno esto hacemos lo siguiente
            {
                MessageBox.Show(StrMensaje, "PROCESO CANCELADO", MessageBoxButton.OK, MessageBoxImage.Error);//FJRF - Enviamos un mensaje al usuario
            }
            if (StrProcesoGuardado == "S")//FJRF - Si se retorno esto hacemos lo siguiente
            {
                MessageBox.Show(StrMensaje, "PROCESO EXITOSO", MessageBoxButton.OK, MessageBoxImage.Exclamation);//FJRF - Enviamos un mensaje al usuario
            }
        }
    }
}
